Telegram Group & Telegram Channel
بدايه مبرمج
Photo
SOLID Principles
(Part 1)

ايش هي SOLID ؟! وكيف نطبقها ؟!

أولاً SOLIDهي مبادئ او قواعد ارشاديه بنمشي عليها اثناء بناء SW بحيث انها تسهل علينا فيما بعد تطبيق أي Design Patterns وحتى لو ما طبقنا Design Patterns فهذي المبادئ بحد ذاتها بتحسن من جودة SW .

و بالرغم من أننا في 2021 إلا أن هذه المبادئ ما زالت غير مُتبعة وغير معروفة خصوصاً لدى المبرمجين الجدد، وهذه الأفكار والمفاهيم من أحد الفوارق بين كود مهندس البرمجيات الجيد والشخص الذي يضع كل شيء في دالة أو كلاس واحد.

أول مبدأ Single Responsibility Principle (SRP)

كلنا ما نحب تحمل مسؤوليات كثيره (الخارجة عن إرادتنا) لأنه بتخلي حياتنا معقدة وممكن بأي لحظة نتحول لقنبلة من أطرف سبب من كثرة الضغط 😵 نفس الشيء ينطبق على الكلاس.

عشان يكون بسيط وقابل للصيانة والتطوير لابد انه يكون مسؤول عن هدف واحد فقط كيف يعني 🤔! Uncle Bob قال:

“ there should never be more than one reason for a class to change”
يجب ألا يكون هناك أكثر من سبب يخليك تدخل للكلاس وتعدل فيه.

مثلاً لو كان عندنا كلاس PaymentProcessor لشحن الحساب وفيه عدة وظائف Methods مثل :

charge()
تستقبل المبلغ المطلوب للشحن وتعمل إجراءات الشحن.

createReport()
تنشئ تقرير عن عملية الشحن هل تمت او لا.

لو جينا نشوف كم سبب يخلينا ندخل الكلاس عشان نعدل فيه !

بنلاقي انه اول سبب هو تغير إجراءات الشحن وهذي وظيفة الكلاس مارح نختلف عليها 🙏.

ثاني سبب لو مثلاً بنغير في format التقرير! نضطر ندخل للكلاس ونغير الـ format وهذا هدف خارج عن مسؤولية الكلاس!!

اوك صح لابد من انشاء تقرير اثناء عملية شحن الحساب ولكن الكلاس غير مسؤول عن تعديل الـ implementation الخاص بأنشاء تقرير.

وعشان نحل المشكلة بيتم انشاء كلاس للتقرير ومن ثم يتم استدعاء دالة انشاء التقرير، وبكذا حققنا مبدأ SRP واصبح كُل راعٍ مسؤولٌ عن رعيته😊.

وأخيراً هذا المبدأ لا يطبق فقط على مستوى الـ Class وإنما على مستوى الـ Methods ايضاً.

.
يتبع..



tg-me.com/beginprogrammer/632
Create:
Last Update:

SOLID Principles
(Part 1)

ايش هي SOLID ؟! وكيف نطبقها ؟!

أولاً SOLIDهي مبادئ او قواعد ارشاديه بنمشي عليها اثناء بناء SW بحيث انها تسهل علينا فيما بعد تطبيق أي Design Patterns وحتى لو ما طبقنا Design Patterns فهذي المبادئ بحد ذاتها بتحسن من جودة SW .

و بالرغم من أننا في 2021 إلا أن هذه المبادئ ما زالت غير مُتبعة وغير معروفة خصوصاً لدى المبرمجين الجدد، وهذه الأفكار والمفاهيم من أحد الفوارق بين كود مهندس البرمجيات الجيد والشخص الذي يضع كل شيء في دالة أو كلاس واحد.

أول مبدأ Single Responsibility Principle (SRP)

كلنا ما نحب تحمل مسؤوليات كثيره (الخارجة عن إرادتنا) لأنه بتخلي حياتنا معقدة وممكن بأي لحظة نتحول لقنبلة من أطرف سبب من كثرة الضغط 😵 نفس الشيء ينطبق على الكلاس.

عشان يكون بسيط وقابل للصيانة والتطوير لابد انه يكون مسؤول عن هدف واحد فقط كيف يعني 🤔! Uncle Bob قال:

“ there should never be more than one reason for a class to change”
يجب ألا يكون هناك أكثر من سبب يخليك تدخل للكلاس وتعدل فيه.

مثلاً لو كان عندنا كلاس PaymentProcessor لشحن الحساب وفيه عدة وظائف Methods مثل :

charge()
تستقبل المبلغ المطلوب للشحن وتعمل إجراءات الشحن.

createReport()
تنشئ تقرير عن عملية الشحن هل تمت او لا.

لو جينا نشوف كم سبب يخلينا ندخل الكلاس عشان نعدل فيه !

بنلاقي انه اول سبب هو تغير إجراءات الشحن وهذي وظيفة الكلاس مارح نختلف عليها 🙏.

ثاني سبب لو مثلاً بنغير في format التقرير! نضطر ندخل للكلاس ونغير الـ format وهذا هدف خارج عن مسؤولية الكلاس!!

اوك صح لابد من انشاء تقرير اثناء عملية شحن الحساب ولكن الكلاس غير مسؤول عن تعديل الـ implementation الخاص بأنشاء تقرير.

وعشان نحل المشكلة بيتم انشاء كلاس للتقرير ومن ثم يتم استدعاء دالة انشاء التقرير، وبكذا حققنا مبدأ SRP واصبح كُل راعٍ مسؤولٌ عن رعيته😊.

وأخيراً هذا المبدأ لا يطبق فقط على مستوى الـ Class وإنما على مستوى الـ Methods ايضاً.

.
يتبع..

BY بدايه مبرمج




Share with your friend now:
tg-me.com/beginprogrammer/632

View MORE
Open in Telegram


بدايه مبرمج Telegram | DID YOU KNOW?

Date: |

Export WhatsApp stickers to Telegram on Android

From the Files app, scroll down to Internal storage, and tap on WhatsApp. Once you’re there, go to Media and then WhatsApp Stickers. Don’t be surprised if you find a large number of files in that folder—it holds your personal collection of stickers and every one you’ve ever received. Even the bad ones.Tap the three dots in the top right corner of your screen to Select all. If you want to trim the fat and grab only the best of the best, this is the perfect time to do so: choose the ones you want to export by long-pressing one file to activate selection mode, and then tapping on the rest. Once you’re done, hit the Share button (that “less than”-like symbol at the top of your screen). If you have a big collection—more than 500 stickers, for example—it’s possible that nothing will happen when you tap the Share button. Be patient—your phone’s just struggling with a heavy load.On the menu that pops from the bottom of the screen, choose Telegram, and then select the chat named Saved messages. This is a chat only you can see, and it will serve as your sticker bank. Unlike WhatsApp, Telegram doesn’t store your favorite stickers in a quick-access reservoir right beside the typing field, but you’ll be able to snatch them out of your Saved messages chat and forward them to any of your Telegram contacts. This also means you won’t have a quick way to save incoming stickers like you did on WhatsApp, so you’ll have to forward them from one chat to the other.

بدايه مبرمج from ua


Telegram بدايه مبرمج
FROM USA